home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
029a
/
sclip.zip
/
SCLPRG.FW3
(
.txt
)
< prev
next >
Wrap
FrameworkDocument
|
1990-07-23
|
62KB
|
1,170 lines
; Scan & Clip
; by Gary Reger
;VERSION
90-07-23
; (c) copyright claimed
;..........................................
HOMEG :=@setselection,
F:=0,
@disp,
@Scan Menu
sclprg;{Alt-S}; Scan & Clip version
Start-up program modules
; test for certain common location errors
@echo(#off),
@local(ftt),
ftt:=@frametype,
;batch started inside formula
@if(@and(ftt=15,BATX="Y"),
@list( ;formula
@beep,
@beep,
@inputline("Batch? is on. Cannot start batch inside formula; {return} to abort."),
@return(0))),
; started inside disk cabinet, but disk batch off
@if(@and(ftt=1,@or(BATX="N",@and(BATX="Y",BATT="FW"))),
@list(
@beep,
@beep,
@inputline(" Cannot start inside disk cabinet with current settings; {return} to abort."),
@return(0))),
;display current key settings, if allowed by starting conditions
@list(@if(@and(ftt<>15,ftt<>1,Display Key Settings="Y"),@list(
@setselection("scldisp"),
@pk("{f9}{return}
Current settings for key toggles
:{return}"),
@pk("{return}Multi-Frame Batch? -- " &BATX &"{return}"),
@pk("{return}Type of Multi-Frame Batch? -- " &BATT &"{return}"),
@pk("{return}Skip outline type prompt? -- " &OTX &"{return}"),
@pk("{return}Outline type? -- " &OTT &"{return}"),
@pk("{return}Prompt for context block size? -- " &BSPX &"{return}"),
@pk("{return}Size of Context Block? -- " &BSPN &"{return}"),
@pk("{return}Skip close proximity hits? -- " &BPX &"{return}"),
@pk("{return}Proximity to skip? -- " &BPN &"{return}"),
@pk("{ctrl-home}{f9}"),
@pk("{ctrl-out}{return}{scroll-lock}"),
@display(scldisp),
@echo(#on))))
@local(ftt),
ftt:=@frametype,
@if(@and(ftt<>15,ftt<>1,Display Key Settings="Y"),@display(Scldisp)),
@menu(Scan Menu)
,ftt<>1,Displ
Scan Menu
#FALSE
@quitmenu,
OTS :="N",
@scanrun
#TBD!
@Setup menu
Change or view Setup
#TBD!
@quitmenu
#FALSE
F:=1,
@setsearch,
@setblock,
@IF(BATX<>"y",@selecttype),
@if(@and(BATX="Y",BATT="D"),@list(
@Disk Batch,
@echo(#on),
@eraseprompt,
@prompt(" Batch scan is completed."))),
@if(@and(BATX="Y", BATT="FW"),@list(
@Desktop Batch,
@echo(#on),
@eraseprompt,
@prompt(" Batch scan is completed.")))
Scanrun
@Diskbstart
Disk Batch
#TRUE
;set location in drive
fb:=@panel1,
fe:=@panel2,
FA:=fe-fb,
batk:=0,
@diskbloop
anel2,
Diskbstart
#TRUE
@diskblfirst,
;=====================
; begin master disk batch loop
@while(fc<=FA,
@selecttype,
;return from scanclip SUB-loop
@memavail,
@diskbnextf,
@memavail,
@echo(#on),
@echo(#off)),
@delete(HOMEBAT)
#off)),
Diskbloop
;LOAD FIRST
@eraseprompt,
@prompt(" Getting and preparing to scan Frame #1."),
@pk("{return}{ESC}{END}"),
HOMEBAT :=@setselection,
HOMEG:=HOMEBAT,
FC:=0,
fn:=fe-@panel1
ction,
Diskblfirst
#FALSE
@if(fc+1<=FA, @list(
@eraseprompt,
batk :=batk+1,
@beep(1000,10),
@prompt(" Finished with Frame #" &@business(batk,0) &" in batch. Getting Frame #" &@business(batk+1,0) & "."))),
;select next frame
@pk("{ctrl-out}"),
@echo(#on,2),
@echo(#off),
@if(BATP="Y",@list(@pk("{CTRL-P}b"),@beep(0,10))),
@pk("{uparrow}"),
@delete(HOMEBAT),
@pk("{scroll-lock}"),
@memavail,
fc:=fc+1,
@PK("{dnarrow}"),
@pk("{return}"),
HOMEBAT :=@setselection,
HOMEG:=HOMEBAT,
@if(fc<=FA, @list(
@eraseprompt,
@beep(1000,10),
@prompt(" Now preparing to scan Frame #" &@business(batk+1,0) & "."),
@beep(0,80)))
Diskbnextf
@deskbstart
Desktop Batch
#FALSE
fn:=0,
HOMEBAT:=@setselection,
HOMEG:=HOMEBAT,
fb:=@panel1,
fe:=@panel2,
FA:=fe-fb,
fc:=1,
batk :=0,
@deskbloop
FA:=fe-fb
Deskbstart
#FALSE
@deskbfirstf,
;=====================
; begin master desktop batch loop
@while(fc<=FA+1,
@memavail,
@selecttype,
;return from scanclip SUB-loop
@memavail,
@deskbcalcend,
@setselection(HOMEBAT),
@if(BATP="Y",@pk("{CTRL-P}b")),
@deskbnextf,
@echo(#on),
@echo(#off))
Deskbloop
@eraseprompt,
@prompt(" Getting and preparing to scan Frame #1."),
@beep(0,80)
Deskbfirstf
#FALSE
@if(fc<=FA, @list(
@eraseprompt,
batk :=batk+1,
@beep(1000,10),
@prompt(" Finished with Frame #" &@business(batk,0) &" in batch. Getting Frame #" &@business(batk+1,0) & "."),
@beep(0,80)))
Frame
Deskbcalcend
#FALSE
;select next frame
fc:=fc+1,
@PK("{dnarrow}"),
HOMEBAT :=@setselection,
HOMEG:=HOMEBAT,
@iserr(@isdocument("OTEMPOO")),@beep(0,0),@list(
@delete("OTEMPOO"))),
@deskbnextfcalc
Deskbnextf
#FALSE
@if(fc<=FA, @list(
@eraseprompt,
@beep(1000,10),
@prompt(" Now preparing to scan Frame #" &@business(batk+1,0) & "."),
@beep(0,80)))
o scan F
deskbnextfcalc
#FALSE
; select program module for type of frame being scanned
; identify frametype selected
@local(FT,FX),
FT :=@frametype,
@if(FT<>15,@setselection(HOMEG)),
IFT:=FT,
LPF:=0,
TL:=0,
@if(FT=5,FX:=1), ;outline
@if(@or(FT=8,FT=9,FT=14),FX:=2), ;word
@if(FT=15,FX:=3), ;formula
@if(@or(FT=7,FT=12),FX:=4), ;database
@if(@or(FT=6,FT=11),FX:=5), ;spreadsheet
@if(@or(FT<5,Ft>15,FT=10,FT=13),FX:=6), ; all others
; execute appropriate module
@select(FX,@scOUTLINE,@scWORD,@scFORMULA,@scDBSH,@scDBSH,@scWrong)
Selecttype
Program paths for frame types
up prog
scOutlines
#FALSE
COUNTOUT:=0,
@Setview,
@Directtotype
scOutline
#TRUE
;test and change view
@local(v),
@pk("{ctrl-out}"),
v:=@frameview,
@if(v=6,@pk("{f10}")),
;open all
@pk("{ctrl-f}O")
6,@pk("{f10}"))
Setview
#FALSE
;test for setup bypass of prompt
@if(OTX<>"Y", @list(
@echo(#on),
@beep(1000,3),
@eraseprompt,
@local(typeO),
typeO :=@inputline("Scan outline for : [T]ext, [F]ormula, or [L]abel? Enter T/F/L.","T",#no,#yes),
@if(@and(typeO<>"T",typeO<>"F",typeO<>"L"),@list(
@eraseprompt,
@beep,
@prompt(" Improper entry, try again."),
@beep(0,120),
@return(0))),
@if(typeO="T",@scOUTLINEw),
@if(typeO="F",@scOUTLINEf),
@if(typeO="L",@scOUTLINEl))),
;if controlled by setup
@if(OTX="Y", @list(
@if(OTT="T",@scOUTLINEw),
@if(OTT="F",@scOUTLINEf),
@if(OTT="L",@scOUTLINEl)))
Directtotype
Outline Types
@OWBEGIN
scOUTLINEw
; Scan & Clip
; by Gary Reger
;VERSION
90-07-23
;-------------------------------------
; IN AN OUTLINE - WORD FRAME
@setselection(HOMEG),
@prep,
@Labelblank,
@Firstframe,
home:=@setselection,
@local(count),
count:=0,
;=====================
; begin master outline loop
@isabend(#false),
@while(@isabend=#false,
@memavail,
@SETSELECTION(HOME),
@pk("{f9}"),
@outwpageset,
; --- BEGIN Scan & Clip
SUB-loop ---
@scanclip,
;return from scanclip SUB-loop
@isabend(#false),
; END scan & clip loop STILL within master loop
;cleanup source subframe
@cleansource,
;reset k
@resetk,
;cleanup target
@cleantarget,
;move to next subframe
@nextoutframe,
;test for end of frame
@endframeQ),
; end master loop
;=======================
; prepare report
@report
OWBEGIN
;label any unnamed subframes
@pk("{ctrl-out}{in}{home}"),
@local(lk,lkb),
lk:=0,
@isabend(#false),
@while(@isabend=#false,
lk:=lk+1,
@if(@setselection=homeg &".[]",@list(
lkb:=@business(lk,0),
@pk(lkb &"{return}"))),
@pk("{dnarrow}")),
@pk("{ctrl-home}"),
@echo(#on)
dnarro
Labelblank
; prepare to begin master outline loop with first frame
@echo(#off),
@eraseprompt,
@echo(#on,2),
@echo(#off),
@prompt(" Now scanning and clipping, please wait..."),
@pk("{ctrl-home}"),
home :=@setselection,
;test for containing subframe w/out text
@local(type),
type:=@frametype,
@while(type=5,
@pk("{dnarrow}"),
type:=@frametype),
;prep to go back to begin loop
@isabend(#false),
home:=@setselection,
k :=0
Firstframe
#TRUE
@local(type),
@setselection(HOME),
@pk("{dnarrow}"),
home:=@setselection,
type:=@frametype,
@while(type=5,
@pk("{dnarrow}"),
type:=@frametype),
home :=@setselection,
@isabend(#false)
nextoutframe
@pk("{ctrl-end}"),
LPF:=@panel2,
@pk("{Ctrl-home}"),
TL:=TL+LPF
outwpageset
#TRUE
@setselection(home),
@pk("{f9}{ctrl-end}{f6}"),
@PK(@REPT("{uparrow}",BLOCKTS)),
@pk("{uparrow}{del}"),
@pk("{ctrl-home}{f6}"),
@PK(@REPT("{dnarrow}",BLOCKTS)),
@pk("{uparrow}{del}"),
@isabend(#false),
@pk("{out}")
del}"),
cleansource
k :=k-1
resetk
#TRUE
@setselection("ClipOW"),
@pk("{f9}{CTRL-END}{f6}"),
@PK(@REPT("{uparrow}",BLOCKTS)),
@pk("{ctrl-7}{uparrow}{del}")
("{uparr
cleantarget
#FALSE
@isabend(#false),
@pk("{dnarrow}"),
@IF(@ISABEND=#TRUE,COUNTOUT:=COUNTOUT+1),
@IF(COUNTOUT<2,@ISABEND(#FALSE))
,COUNTO
endframeQ
#FALSE
; Scan & Clip
; by Gary Reger
;VERSION
90-07-23
;-------------------------------------
; IN AN OUTLINE - FORMULA AREA FRAME
OTS:="F",
@prep,
@setselection(HOMEG),
;prepare sub-frames
@local(home),
home:=@setselection,
@pk("{ctrl-out}{in}{home}"),
;label any unnamed subframes
@local(lk,lkb),
lk:=0,
@isabend(#false),
@while(@isabend=#false,
lk:=lk+1,
@if(@setselection=home &".[]",@list(
lkb:=@business(lk,0),
@pk(lkb &"{return}"))),
@pk("{dnarrow}")),
; prepare to begin master outline loop
@pk("{ctrl-out}{in}{home}"),
@eraseprompt,
@echo(#on,2),
@echo(#off),
@prompt(" Now scanning and clipping, please wait..."),
@isabend(#false),
@local(ks,l,pf,pp),
k :=0,
;=====================
; begin master outline loop
HOMEG :=@Setselection,
@pk("{f2}{f9}{ctrl-end}"),
@while(@isabend=#false,
; --- BEGIN Scan & Clip
SUB-loop ---
LPF:=@panel2,
@pk("{Ctrl-home}"),
TL:=TL+LPF,
@scFORMULA,
;return from formula scanclip SUB-loop
@isabend(#false),
@pk("{ctrl-out}"),
@setselection(HOMEG),
@isabend(#false),
@pk("{dnarrow}"),
@echo(#on,2),
@echo(#off),
HOMEG :=@setselection,
@if(@isabend=#true,@endscl),
@Pk("{f2}{f9}")
; end master loop
;=======================
scOUTLINEf
#TRUE
; OUTLINE Labels
OTS:="L",
@echo(#off),
@pk("{ctrl-out}"),
HOMEG:=@setselection,
@PK("TEMPNAME{RETURN}"),
@writetextfile("otempoo.txt",TEMPNAME),
@pk("{ctrl-d}gotempoo.txt{return}"),
@pk("{ctrl-out}{end}"),
@SETSELECTION("tempname"),
@pk(HOMEG &"{return}"),
@setselection("otempoo"),
@scword,
@delete("otempoo")
ion("otempoo"
scOUTLINEl
; word prep module, all frame types destined to be processed as word frame
@prep,
; originally a:
@if(IFT=5,@setselection("otempoo")), ;outline
@if(@or(IFT=8,IFT=9,IFT=14),@setselection(HOMEG)), ;word
@if(IFT=15,@setselection("otempoo")), ;formula
@if(@or(IFT=7,IFT=12),@setselection("otempoo")), ;database
@if(@or(IFT=6,IFT=11),@setselection("otempoo")), ;spreadsheet
@scWORDproc,
; prepare report
@report
scWORDproc,
scWord
#FALSE
; Scan & Clip
; by Gary Reger
;VERSION
90-07-23
;-------------------------------------
; IN A WORD FRAME
@echo(#on),
@echo(#off),
;prepare frame
; test for frame lines to use in page calc.
@local(home),
home:=@setselection,
@pk("{ctrl-out}{in}"),
@pk("{f9}{ctrl-end}"),
LPF:=@panel2,
@pk("{Ctrl-home}{f9}"),
;label if frame is unnamed
@local(lk),
lk:="Unnamed Frame",
@if(@setselection=".[]",
@pk(lk &"{return}")),
; prepare to begin master scan and clip word frame loop
@pk("{ctrl-out}"),
@eraseprompt,
@echo(#on,2),
@echo(#off),
@prompt(" Now scanning and clipping, please wait..."),
@PK("{in}"),
@isabend(#false),
k :=0,
;=====================
; begin master word loop
@while(@isabend=#false,
; --- BEGIN Scan & Clip
SUB-loop ---
@scanclip,
;return from scanclip SUB-loop
@isabend(#false),
home:=@setselection,
; END scan & clip loop - clean-up subframe & target frame, rest k,
;test for end of doc. STILL within master loop
@pk("{ctrl-end}{f6}"),
@PK(@REPT("{uparrow}",BLOCKTS)),
@pk("{uparrow}{del}"),
@pk("{ctrl-home}{f6}"),
@PK(@REPT("{dnarrow}",BLOCKTS)),
@pk("{uparrow}{del}"),
@isabend(#false),
@pk("{f9}"),
@PK("{CTRL-L}GClipOW{RETURN}"),
k :=k-1,
@pk("{f9}{CTRL-END}{f6}"),
@PK(@REPT("{uparrow}",BLOCKTS)),
@pk("{ctrl-7}{uparrow}{del}"),
@PK("{CTRL-L}G"&home &"{RETURN}"),
@isabend(#false),
@Pk("{f9}{ctrl-end}{Pgdn}"),
@isabend(#false),
@pk("{pgdn}"))
; end master loop
;=======================
gdn}"))
scWORDproc
#FALSE
; Scan & Clip
; by Gary Reger
;VERSION
90-07-23
;-------------------------------------
; IN A FORMULA
@beep(220,15),
@eraseprompt,
@echo(#off),
@prompt(" Duplicating formula as text, for scanning. Please wait..."),
@pk("{ctrl-home}{f6}{ctrl-end}{return}{shift-f7}"),
@pk("{ctrl-home}{esc}"),
HOMEG :=@setselection,
@pk("{ctrl-out}"),
@iserr(@isdocument("OTEMPOO")),@beep(0,0),@list(
@delete("OTEMPOO"))),
@pk("{ctrl-c}Eotempoo{return}{in}{shift-f8}{ctrl-home}{rightarrow}{out}"),
@scWord,
@echo(#off),
@delete("oTempoo"),
@if(OTS<>"F",@list(
@pk("{f9}")))
@delet
scFORMULA
; Scan & Clip
; by Gary Reger
;VERSION
90-07-23
;-------------------------------------
; IN A DATABASE or SPREADSHEET
@beep(220,15),
@eraseprompt,
@echo(#off),
@prompt(" Duplicating records as text, for scanning. Please wait..."),
;identify source frame
@pk("{ctrl-out}"),
HOMEG :=@setselection,
@memavail,
;create target frame
@iserr(@isdocument("OTEMPOO")),@beep(0,0),@list(
@delete("OTEMPOO"))),
@pk("{ctrl-c}Eotempoo{return}{ctrl-w}r255{return}"),
;copy data from source to target
@memavail,
@setselection(HOMEG),
@pk("{ctrl-in}"),
@pk("{ctrl-home}{f6}{ctrl-end}{return}{f8}"),
@pk("{ctrl-out}"),
@setselection("otempoo"),
@isabend(#false),
@pk("{in}{return}{ctrl-home}"),
; CHECK FOR TOO LARGE DATABASE OR SPREADSHEET
@IF(@isabend=#false,
@list(@pk("{ctrl-home}"),
@setselection(homeg),
@scWord),
@LIST(@eraseprompt,
@beep,@beep(500,24),@beep,
@inputline("Source Frame Contains Too Many Characters; {return} to abort. See Documentation"),
@beep(0,120),
@return(0)))
scDBSH
@beep,@beep,
@eraseprompt,
@prompt(" Wrong Frametype: outline, word, empty, database, spreadsheet & formula, ONLY."),
@beep(523,5),
@beep(0,180),
@beep(523,5)
formul
scWRONG
Common program modules
;Search criteria
@eraseprompt,
@beep(1000,10),
SC:=@inputline(" Enter Search Criteria (e.g. Tom*); end with {return}."),
@beep(1000,5)
riteria (
SetSearch
;set block size,
;if setup to choose permanent
@if(BSPX="N",BS:=BSPn,
; else - set at prompt
@list(
@local(bl),
@eraseprompt,
@beep(523,2),
bl:=@inputline("Enter block size to capture; e.g. 5 : sets 5 lines above & 5 lines below", BSPN,,#yes),
BS :=bl)),
; set block capture size
BLOCKTS:=@value(BS)
; set b
SetBlock
ClipOW
.sclprg2.[St
; clear key menu choices
@echo(#off),
@pk("{ctrl-L}s{out}{del}r{out}{del}g{out}{del}{out}"),
;PROMPT PROCESS
@echo(#on,2),
@eraseprompt,
@prompt(" Preparing Frame to Scan, please wait..."),
@echo(#off),
; clear search menu
@pk("{ctrl-l}s{out}{del}{esc}"),
;create containing target frame
@pk("{ctrl-out}{ctrl-c}eClipOW{return}"),
@setselection(HOMEG)
@pk("{ctrl-ou
Scan&Clip Loop
3138656
;clear undo buffer
@memavail,
; Adjust for parameters of new frame or subframe that is calling
; SET variables
ks :="1",
home:=@setselection,
@SETLINEREF,
;set page factor
@PAGEFACTOR,
;set space at bottom to assure available block space at end
@SETBOTTOM,
; set space at top to assure block size available on first block
@PK(@REPT("{RETURN}",BLockts)),
@PK("{CTRL-HOME}"),
; --- BEGIN Scan & Clip
loop ---
@isabend(#false),
lpp:=@VALUE(LP),
@while(@isabend=#false,
@SCLSEARCH,
@calclocpage,
@BLOCKSELECT,
@CUTX,
@SETK,
@pastehit,
@HITCOUNT,
@RESETSCL),
;clear undo buffer
@memavail
@RESET
ScanClip
#FALSE
py page
lect&
@if(IFT=5,@list(homet:=home,fd :="subframe line",pgcl:=PR1)),
@if(@or(IFT=8,IFT=9,IFT=14),@list(homet:=home,fd :="frame line",pgcl:=PR1)),
@if(IFT=15,@list(homet:=HOMEG,fd :="formula line",pgcl :=PR2)),
@if(@and(IFT=5,OTS="F"),@list(homet:=HOMEG,fd :="subframe formula line",pgcl:=PR1)),
@if(@and(IFT=5,OTS="L"),@list(homet:=HOMEG,fd :="absolute subframe #",pgcl:=PR1)),
@if(@or(IFT=7,IFT=12),@list(homet:=HOMEG,fd :="record #",pgcl:=PR2)),
@if(@or(IFT=6,IFT=11),@list(homet:=HOMEG,fd :="row #",pgcl:=PR2))
T=6,IFT=11)
SETLINEREF
@if(@and(IFT=5,OTS<>"L"),@list(
@pk("{out}"),
@echo(#on,2),
@echo(#off),
@pk("{in}"),
pf:=TL-LPF,
@pk("{in}{f9}")),
pf:=0)
PAGEFACTOR
#FUNCTION
[,|*l
@pk("{ctrl-end}"),
@PK(@REPT("{RETURN}",BLOCKTS)),
;mark end search tag
@pk("{ctrl-end}{return}" &home &" searched on: ` " &SC &" ' ; end sub-frame marker."),
@pk("{CTRL-HOME}{pgup}"),
@RETURN(0)
me marker."),
SETBOTTOM
#TRUE
@pk("{CTRL-L}s"),
@pk(SC),
@if(@isabend=#true,@return(0)),
@pk("{return}")
SCLSEARCH
l:=@business(@panel2-BLOCKTS,0),
@if(@or(IFT=7,IFT=12),l:=@business(@panel2-BLOCKTS-2,0)),
@if(@or(IFT=6,IFT=11),l:=@business(@panel2-BLOCKTS-1,0)),
pp:=@business(@ceiling((@panel2+pf)/lpp),0)
TS-1,0)),
calclocpage
#TRUE
@pk("{RIGHTARROW}"),
@PK(@REPT("{uparrow}",BLOCKTS)),
@pk("{HOME}{F6}"),
@PK(@REPT("{dnarrow}",BLOCKTS*2)),
@pk("{END}{RETURN}")
(@REPT("{dna
BLOCKSELECT
OTEMPOO
Hits]
@pk("{F8}{f9}"),
@setselection("ClipOW")
k :=k+1,
ks:=@business(k,0)
#TRUE
;paste hit to report frame
@pk("{f9}{CTRL-END}{RETURN}{home}{return}{return} ** Hit #"),
@pk(ks),
@pastelab,
@pk("{return}{return}{return}{ctrl-END}{RETURN}{return}{ctrl-out}"),
@memavail,
@setselection(home),
@isabend(#false)
etselection
pastehit
#TRUE
@pk(". Frame " &homet &", " &fd &" " &l & ", at " &pgcl &" " &pp &".")
pastelab
#FUNCTION
@local(ks),
ks:= @item1,
@prompt(" Hit# " &ks &". Still scanning and clipping, please wait...")
scLprompt
@pk("{f9}{dnarrow}{uparrow}"),
@if(@isabend=#true,
@list(@eraseprompt,
ks:=@business(k-1,0),
@sclprompt(ks)),
@list(@eraseprompt,
@scLprompt(ks)))
@li
HITCOUNT
#TRUE
@PK(@REPT("{uparrow}",BLOCKTS)),
@if(BPX="Y",@PK(@REPT("{dnarrow}",@value(BPn)))),
@pk("{end}")
@if(BPX="Y"
RESETSCL
Report Mods
; Prepare report frame
@local(ks,home),
ks:=@business(k,0),
;rename target/result frame
@beep(1000,5),
@eraseprompt,
@prompt(" Scan complete, " &ks &" hits. Now preparing report, please wait..."),
@pk("{ctrl-out}"),
@if(@or(IFT=6,IFT=7,IFT=11,IFT=12,IFT=15,OTS="F",OTS="L"),home:=HOMEG,home :=@setselection),
@PK("{CTRL-L}GClipOW{RETURN}"),
@pk("{ctrl-out}"),
@pk(SC &" Hits{return}{IN}{f9}{ctrl-end}{return}"),
@pk("{ctrl-w}c"),
@pk(" End of report for scan of ` " &home &" '{return}"),
@pk("For ` " &Sc &" '{return}"),
@pk("{ctrl-w}n{return}"),
@pk("{return}{ctrl-home}"),
@pk("{ctrl-w}c"),
@pk("Scan of ` " &home &" '{return}"),
@pk("For ` " &Sc &" '{return}"),
@pk("[ With search block of " &BS &" lines above & below each hit ]"),
@pk("{return}{ctrl-w}n{return}"),
; re-format and set printing
@pk("{ctrl-out}{ctrl-w}l" &ML &"{return}"),
@pk("{ctrl-out}{ctrl-w}r" &MR &"{return}"),
@pk("{ctrl-p}fpo" &PO &"{return}w" &PW &"{return}fc<page>{return}{esc}{esc}"),
; mark hits
@if(@and(MHX="Y",MHO="Q"),@RepmhQ),
@if(@and(MHX="Y",MHO<>"Q"),@RepmhR),
; optional delete ascii page codes in report
@if(DPCX="Y",@DeletePC),
;set report notes
@PK("{IN}"),
@if(PX1="Y",@list(
@pk("{ctrl-home}{ctrl-l}s]{return}{rightarrow}"),
@pk("{ctrl-e}fc " &PN1 &"{return}"))),
@if(PX2="Y",@list(
@pk("{ctrl-end}{ctrl-3}{uparrow}{end}"),
@pk("{ctrl-e}fc " &PN2 &"{return}"))),
@pk("{f9}{ctrl-home}"),
@echo(#on)
Report
#FALSE
; mark hits by regualr method
@eraseprompt,
@prompt(" Marking Hits in report, please wait...."),
@LOCAL(HM,pm),
HM:=HITMARK,
pm:=0,
@pk("{in}{ctrl-home}"),
@isabend(#false),
@while(@isabend=#false,
@pk("{CTRL-L}s"),
@pk(SC &"*>"),
@pk("{return}"),
@if(Pm=1,pm:=0,pm:=pm+1),
@eraseprompt,
@if(Pm=1,@prompt(" |
. |"),
@prompt(" | .
.
|")),
@pk("{ctrl-w}" &HM),
@pk("{RIGHTARROW}"),
@pk("{ctrl-w}n"),
@isabend(#false),
@PK(@REPT("{dnarrow}",BLOCKTS)),
@pk("{ctrl-4}{dnarrow}"),
@PK(@REPT("{uparrow}",BLOCKTS)),
@pk("{ctrl-4}{uparrow}"))
@PK(@RE
RepmhR
#TRUE
; mark hits by quick routine
@eraseprompt,
@prompt(" Marking Hits in report, please wait...."),
@LOCAL(HM,pm),
HM:=HITMARK,
@pk("{in}"),
@isabend(#false),
@pk("{CTRL-L}r"),
@pk(SC),
@pk("{return}"),
@pk(".{backspace}"),
@pk("{ctrl-w}" &HM),
@pk(SC),
@pk("{return}{end}")
@pk("{
RepmhQ
#TRUE
; OPTIONAL DELETE ASCII 012
, page codes from Report
@pk("{ctrl-home}{ctrl-l}r
{return} {backspace}{return}{end}"),
@pk("{ctrl-home}")
home}{ct
Deletepc
; clear display
@echo(#off),
@PK("{ESC}{ESC}{CTRL-OUT}{CTRL-D}C"),
@echo(#on),
@echo(#off),
; clean up frames/desktop
@ERASEPROMPT,
@setselection("scldisp"),
@pk("{f9}{ctrl-home}{f6}{ctrl-end}{del}{f9}{ctrl-out}{return}{scroll-lock}"),
@iserr(@isdocument("clipow")),@beep(0,0),@list(
@delete("clipow"))),
@iserr(@isdocument("OTEMPOO")),@beep(0,0),@list(
@delete("OTEMPOO"))),
@PK("{ESC}{ESC}"),
@memavail,
@BEEP(3000,10),
@echo(#on)
emavail,
Endscl
Setup modules
@menu(Setup Menu)
Setup menu
Report parameters
Footnotes
@return(@inputline("Enter new value. Current setting is " &PX1
&". Default setting is in prompt line.",setup defaults.Setting.dPX1,#no,#yes))
PX1 ; toggle report note #1 on(Y)/off(N)
This report is CONFIDENTIAL.
r at t
@return(@inputline("Enter new value. Current setting is " &PN1
&". Default setting is in prompt line.",setup defaults.Setting.dPN1,#no,#yes))
in prompt
PN1 ; contents of report note #1
@return(@inputline("Enter new value. Current setting is " &PX2
&". Default setting is in prompt line.",setup defaults.Setting.dPX2,#no,#yes))
PX2 ; toggle report note #2 on(Y)/off(N)
Page cross references in this report are
calculated. When a document is printed page breaks
are affected by many factors. The page cross
references in this report may not correspond to
the page numbers of your particular hard copy,
either because the calculation parameters were
improperly set or because of the printing
characteristics of your document.
to the
@return(@inputline("Enter new value. Current setting is " &PN2
&". Default setting is in prompt line.",setup defaults.Setting.dPN2,#no,#yes))
in prompt
PN2 ; contents of report note #2
#TBD!
@quitmenu
Document page description
hard copy page
@return(@inputline("Enter new value. Current setting is " &PR1&". Default setting is in prompt line.",setup defaults.Setting.dPR1,#no,#yes))
PR1 ; description source hard copy for page cross
reference in report for text frames
n sourc
hard copy page
@return(@inputline("Enter new value. Current setting is " &PR2 &". Default setting is in prompt line.",setup defaults.Setting.dPR2,#no,#yes))
lt setting is i
PR2 ; description source hard copy for page cross
reference in report for other frame types
#TBD!
@quitmenu
Margin & printing attributes
@return(@inputline("Enter new value. Current setting is " &ML
&". Default setting is in prompt line.",setup defaults.Setting.dML,#no,#yes))
ult settin
ML; left margin width
@return(@inputline("Enter new value. Current setting is " &MR
&". Default setting is in prompt line.",setup defaults.Setting.dMR,#no,#yes))
MR; right margin width
@return(@inputline("Enter new value. Current setting is " &PO
&". Default setting is in prompt line.",setup defaults.Setting.dPO,#no,#yes))
PO; printing offset
@return(@inputline("Enter new value. Current setting is " &PW
&". Default setting is in prompt line.",setup defaults.Setting.dPW,#no,#yes))
PW; printing width
@return(@inputline("Enter new value. Current setting is " &DPCX
&". Default setting is in prompt line.",setup defaults.Setting.dDPCX,#no,#yes))
ng is in prompt
DPCX ; toggle delete ASCII page codes from report, on(Y)/off(N)
DPCX ;
#TBD!
@quitmenu
Hit marks
@return(@inputline("Enter new value. Current setting is " &MHX
&". Default setting is in prompt line.",setup defaults.Setting.dMHX,#no,#yes))
MHX ; toggle whether to highlight hits in report, on(Y)/off(N)
MHX ; t
@return(@inputline("Enter new value. Current setting is " &MHO
&". Default setting is in prompt line.",setup defaults.Setting.dMHO,#no,#yes))
MHO ; [R]egular marking method or [Q]uick mark
@return(@inputline("Enter new value. Current setting is " &HITMARK
&". Default setting is in prompt line.",setup defaults.Setting.dHITMARK,#no,#yes))
is in pro
HITMARK ; method of highlighting hits
#TBD!
@quitmenu
#TBD!
@quitmenu
Context block parameters
@return(@inputline("Enter new value. Current setting is " &BSPX
&". Default setting is in prompt line.",setup defaults.Setting.dBSPX,#no,#yes))
ng is in prompt
BSPX ; toggle user set block size by prompt, on(Y)/off(N)
@return(@inputline("Enter new value. Current setting is " &BSPn
&". Default setting is in prompt line.",setup defaults.Setting.dBSPn,#no,#yes))
ng is in prompt
BSPn ; size of block default, if BSPX off(N)
@return(@inputline("Enter new value. Current setting is " &BPX
&". Default setting is in prompt line.",setup defaults.Setting.dBPX,#no,#yes))
BPX ; toggle avoid close proximity hits, on(Y)/off(N)
@return(@inputline("Enter new value. Current setting is " &BPn
&". Default setting is in prompt line.",setup defaults.Setting.dBPn,#no,#yes))
BPn ; size of close proximity range if BPX on(Y)
#TBD!
@quitmenu
Page parameters
@return(@inputline("Enter new value. Current setting is " &LP
&". Default setting is in prompt line.",setup defaults.Setting.dLP,#no,#yes))
LP ; screen lines per page of hard copy
#TBD!
@quitmenu
Batch operation options
@return(@inputline("Enter new value. Current setting is " &BATX
&". Default setting is in prompt line.",setup defaults.Setting.dBATX,#no,#yes))
ng is in prompt
BATX ; toggle multi-frame batch operation on(Y)/off(N)
@return(@inputline("Enter new value. Current setting is " &BATT
&". Default setting is in prompt line.",setup defaults.Setting.dBATT,#no,#yes))
ng is in prompt
BATT ; set type of multi-frame batch if on(Y), disk(D) or FW
desktop(FW)
@return(@inputline("Enter new value. Current setting is " &BATP
&". Default setting is in prompt line.",setup defaults.Setting.dBATP,#no,#yes))
ng is in prompt
BATP ; toggle batch printing on(Y)/off(N)
#TBD!
@quitmenu
Outline control
@return(@inputline("Enter new value. Current setting is " &OTX
&". Default setting is in prompt line.",setup defaults.Setting.dOTX,#no,#yes))
OTX ; toggle bypass prompt control of outline type, on(Y)/off(N)
OTX ; t
@return(@inputline("Enter new value. Current setting is " &OTT
&". Default setting is in prompt line.",setup defaults.Setting.dOTT,#no,#yes))
OTT ; set outline type to process, if OTX on(Y): T/F/L
#TBD!
@quitmenu
@return(@inputline("Enter new value. Current setting is " &Display Key Settings
&". Default setting is in prompt line.",setup defaults.Setting.dDX,#no,#yes))
in prompt
Display Key Settings
ry.[{Alt-S}].S
@ECHO(#OFF),
@eraseprompt,
@prompt(" Re-setting defaults. Recalculation will take a moment."),
@LOCAL(HT),
HT:=@SETSELECTION,
@SETSELECTION("Setup Defaults"),
@PK("{IN}{F5}{OUT}"),
@SETSELECTION(HT),
@ECHO(#ON),
@eraseprompt
N}{F5}{OUT}")
All reset (set all to "permanent" defaults)
#TBD!
@quitmenu
(v(j(^(R(F(
'{retur
Setup Defaults ; {F9} to view & change
@pk("Sear
Default Name
Setting
Options
Set Formula
hard copy page
Any text; only part may show
hard copy page
PR1 :=Setting.dPR1
dPR2
hard copy page
Any text; only part may show
hard copy page
PR2 :=Setting.dPR2
@PERFORMKE
dPX1
PX1 :=Setting.dPX1
dPN1
This report is CONFIDENTIAL.
Any text; only part may show
This report is CONFIDENTIAL.
PN1 :=Setting.dPN1
@PER
dPX2
PX2 :=Setting.dPX2
dPN2
Page cross references in this report are
calculated. When a document is printed page breaks
are affected by many factors. The page cross
references in this report may not correspond to
the page numbers of your particular hard copy,
either because the calculation parameters were
improperly set or because of the printing
characteristics of your document.
or because of
Any text; only part may show
Page cross references in this report are
calculated. When a document is printed page breaks
are affected by many factors. The page cross
references in this report may not correspond to
the page numbers of your particular hard copy,
either because the calculation parameters were
improperly set or because of the printing
characteristics of your document.
PN2 :=Setting.dPN2
Any valid margin setting, entered as text
ML :=Setting.dML
,pgcl:=PR1
Any valid margin setting, entered as text
MR :=Setting.dMR
@list(home
Any valid print offset, entered as text
PO :=Setting.dPO
:=PR2)),
Any valid width setting, entered as text
PW :=Setting.dPW
@echo(#
dDPCX
DPCX :=Setting.dDPCX
pf:
MHX :=Setting.dMHX
[R]egular/[Q]uick ; i.e. R/Q
MHO :=Setting.dMHO
(~(|(z(
n: ` " &SC
dHITMARK
Any valid word style setting
HITMARK :=Setting.dHITMARK
t(r(p(n(
p to assur
dBSPX
BSPX :=Setting.dBSPX
h(f(d(b(
CTRL-HOME}
dBSPn
Any number 0 or greater, entered as text
BSPN :=Setting.dBSPn
\(Z(X(V(
alse),
dBPX
BPX :=Setting.dBPX
P(N(L(J(
,@list(@Cl
dBPn
Any number 1 or greater, entered as text
BPn :=Setting.dBPn
D(B(@(>(
true,@retu
The number of screen lines per printed page
LP :=Setting.dLP
:(8(6(4(
dBATX
BATX :=Setting.dBATX
0(.(,(*(
usiness(@p
dBATT
FW/D ; desktop (FW) or disk (D)
BATT :=Setting.dBATT
RETURN}"),
dBATP
BATP :=Setting.dBATP
:=@busines
dOTX
OTX :=Setting.dOTX
dOTT
[T]ext; [F]ormula; [L]abel
OTT :=Setting.dOTT
Display Key Settings :=Setting.dDX
'|'x'r'l'h'b'V'R'N'
Global Variables ; program controlled // DO NOT EDIT
BLOCKTS
COUNTOUT
absolute subframe #
OTEMPOO
Hits]
MEDTIM89
HOMEBAT
scldoc
SCLtest.txt
HOMEG
files
CLtest.txt
HOMET
, :`q
hard copy page
scldisp ; template for opening display of key settings